
#pragma once

using namespace System;

namespace HidLib
{
	public ref class HidDeviceData
	{
	public:
		enum class ReadStatus : int
		{
			Success = 0,
			WaitTimedOut = 1,
			WaitFail = 2,
			NoDataRead = 3,
			ReadError = 4,
			NotConnected = 5
		};

		HidDeviceData(ReadStatus Status);
		HidDeviceData(array<Byte>^ Data, ReadStatus Status);

		property HidDeviceData::ReadStatus Status
		{
			HidDeviceData::ReadStatus get()
			{
				return _Status;
			}
		};

		property array<Byte>^ Data
		{
			array<Byte>^ get()
			{
				return _Data;
			}
		};

	private:
		array<Byte>^ _Data;
		ReadStatus _Status;
	};
}